<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1.判断对象是否相同

        // Object.is();

        // let obj1={
        //     name:'123'
        // }
        // let obj2={
        //     name:'123'
        // }
        // console.log(Object.is(obj1,obj2));
        // console.log(Object.is(NaN,NaN));

        // 2. Object.assign(); 合并2个或者多个对象； （重点）
        // 相同键名会覆盖 
        // 是一个浅拷贝
        // let obj1={
        //     name:'132'
        // }
        // let obj2={
        //     age:20
        // }
        // let res=Object.assign(obj1,obj2);
        // obj1.name='456';
        // console.log(res);

        // 展开运算符 复制的对象或者数组 也是浅拷贝
        // let arr = [1,2,3,[6,7]];
        // let arr2 = [...arr];
        // // arr[0] = 5;
        // arr[3][0] = 8;
        // console.log(arr2);

        // 3.Object.hasOwn   // es6 判断某个属性是否 是对象的自身属性 （重点）
        //两个参数，判断第二个参数是不是第一个参数里面的属性
        // let obj={
        //     name:'13',
        //     age:10
        // }
        // console.log(Object.hasOwn(obj,'age'));

        // 4.Object.keys();Object.values(); （重点）
        // 获取对象的所有键名 或者是键值 放在一个数组里

        // let obj={
        //     name:'132',
        //     age:10
        // }
        // let jian=Object.keys(obj);
        // let zhi=Object.values(obj);

        // console.log(jian,zhi);
        // console.log(zhi);

        // 5.Object.seal();可以把对象 边成不可配置对象；
        //可读可写不可删
        //Object.freeze(obj)冻结，什么都干不了
        let obj={
            name:'132',
             age:10
        }
        Object.seal(obj);
        
    </script>
</body>
</html>